package com.shujia

import scala.collection.mutable

object Demo16Set {
  def main(args: Array[String]): Unit = {
    /**
     * Set集合：元素不能够重复，会自动进行去重，默认也是不可变的
     * 无序的
     */

    val set01: Set[Int] = Set[Int](1, 2, 2, 3, 4, 2, 1, 6, 5, 8)
    println(set01)

    /**
     * 集合的运算：交集、并集、差集......
     */

    val s1: Set[Int] = Set[Int](1, 2, 3, 4, 5)
    val s2: Set[Int] = Set[Int](3, 4, 5, 6, 7)

    println(s1.intersect(s2))
    println(s1 & s2)
    println(s1.union(s2))
    println(s1 | s2)
    println(s1.diff(s2))
    println(s2.diff(s1))
    println(s1 -- s2)
    println(s2 -- s1)

    /**
     * 可变的集合：mutable.Set / HashSet
     */

    val mSet01: mutable.Set[Int] = mutable.Set[Int](1, 2, 2, 3, 4, 7, 6, 5)
    println(mSet01)
    mSet01 += 1
    mSet01 += 11
    mSet01 += 18
    mSet01 += 9
    println(mSet01)

    mSet01.add(2)
    mSet01.add(22)
    println(mSet01)

    mSet01 -= 1
    mSet01 -= 22
    mSet01 -= 18
    mSet01 -= 11
    mSet01.remove(9)
    println(mSet01)

    // 修改：需要先移除再添加即可
    mSet01.remove(5)
    mSet01.add(55)
    println(mSet01)
  }

}
